#ifndef WEATHERTO_H
#define WEATHERTO_H
#include<QString>
#include<QMap>
#include<QFile>
#include<QJsonParseError>
#include<QJsonArray>
#include<QJsonObject>
#include<QDebug>


class WeatherTool{
private:
    static QMap<QString,QString> mCityMap;
public:
    static void initCitymap()
    {
        //读取文件
        QString filePath = "://res/city.json";
        QFile file(filePath);
        //尝试以只读和文本模式打开文件
        file.open(QIODevice::ReadOnly|QIODevice::Text);
        //读取一个 JSON 文件并将其内容存储到一个 QByteArray 对象中
        QByteArray json = file.readAll();
        file.close();

        //2.解析，并写入到map
        QJsonParseError err;
        /*使用 QJsonDocument::fromJson 方法将字节数组解析为 QJsonDocument。
        如果解析过程中出现错误，通过 QJsonParseError 获取错误信息并输出警告。*/
        QJsonDocument doc = QJsonDocument::fromJson(json,&err);
        QJsonArray cities = doc.array();
        for(int i =0;i<cities.size();i++)
        {
            QString cityName = cities[i].toObject().value("cityName").toString();
            QString citycode = cities[i].toObject().value("cityCode").toString();
            mCityMap.insert(cityName,citycode);
        }

    }
    static QString getCityCode(QString cityName)
    {

        if(mCityMap.isEmpty())
            initCitymap();

        QMap<QString,QString>::iterator it = mCityMap.find(cityName);
        if(it == mCityMap.end())
            it = mCityMap.find(cityName+"市");

        if(it!=mCityMap.end())
            return mCityMap.value(cityName);
        return "";

    }
};
QMap<QString,QString> WeatherTool::mCityMap = {};

#endif // WEATHERTO_H
